home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 July
/
CMCD0704.ISO
/
Software
/
Shareware
/
Comunicatii
/
jaeger
/
jaeger.exe
/
{app}
/
Tools
/
ToolTesting.py
< prev
next >
Wrap
Text File
|
2004-02-18
|
3KB
|
116 lines
#!/bin/python
"""
ToolTesting.py
David Janes
BlogMatrix
2004.02.15
"""
import sys
import urllib
import Tool
class ToolTesting(Tool.ToolInterface):
"""
The interface for your tool. Simply create an instance of this object and Jaeger
will figure it out.
"""
def __init__(self):
Tool.ToolInterface.__init__(self, self.WEBSERVER)
def get_label(self, selected):
return "Testing"
def get_server(self, path):
"""
"""
return {
"/": ( self.serve_root, "" ),
"/form": ( self.serve_form, "Form Demonstration" ),
"/cgi": ( self.serve_cgi, "CGI Demonstration" ),
}.get(path)
def serve_root(self, operations, path, valuemap):
result = [
self.text_standard_header(path),
"""
<p>
This extension doesn't really do anything useful, except to demonstrate
how to write extensions to serve web pages.
<ul>
<li><a href='cgi?url=io&x=y&happy=go-lucky'>CGI Demonstration</a>
<li><a href='form'>Form Demonstration</a>
</ul>""",
self.text_standard_footer()
]
return 200, "text/html", None, result
def serve_form(self, operations, path, valuemap):
#
# The 'name' and 'phone' values are persisted through the '*userdata' functions
#
name = valuemap.get("name")
if name == None:
name = operations.get_userdata("name", "")
else:
operations.set_userdata("name", name)
phone = valuemap.get("phone")
if phone == None:
phone = operations.get_userdata("phone", "")
else:
operations.set_userdata("phone", phone)
result = [
self.text_standard_header(path),
"""\
<h2>Form Demonstration</h2>
<p>
The values the user enters into this form are persistent, even across multiple sessions
of Jaëger!
<p>
<form method="POST">
<table>
<tr>
<td align="left">Name:</td>
<td><input type="text" name="name" value=\"""" + self.escape_html(name) + """"></td>
</tr>
<tr>
<td align="left">Phone:</td>
<td><input type="text" name="phone" value=\"""" + self.escape_html(phone) + """"></td>
</tr>
<td>
<tr>
<td></td>
<td><input type="Submit"></td>
</tr>
</table>
</form>
"""
]
result.append(self.text_standard_footer())
return 200, "text/html", None, result
def serve_cgi(self, operations, path, valuemap):
result = [
self.text_standard_header(path),
"<h4>Path</h4><p>%s" % path,
"<h4>Parameters</h4><p>",
]
for key, value in valuemap.iteritems():
result.append("%s: %s<br>" % ( key, value ))
result.append(self.text_standard_footer())
return 200, "text/html", None, result
#
# creating it will register it
#
ToolTesting()